42 - 5.2.4 Rechnerorganisation: Organisationsprinzipien von Maschinenprogrammen [ID:15393]
50 von 247 angezeigt

Ich möchte noch kurz etwas zu den Prinzipien sagen, nach denen die Maschinenprogramme grundsätzlich

grob organisiert sind. Da gehen wir kurz auf Funktion, bestimmte Funktionen nochmal ein,

welche Positionen, Systemfunktionen hier nochmal einnehmen und dann letztendlich auch Komponenten

werden wir betrachten, die denn letztendlich diese Maschinenprogramme konstituieren. Nun,

was wir gesehen haben vorher, kann sich hier in dieser Aufruf-Hierarchie wiederfinden. Wir

haben also ein Anwendungsprogramm gehabt, Main, unser Echo-Programm. In diesem Echo-Programm wurden

Read&Write als Systemaufrufe aktiviert. Intern in den Stümpfen haben wir gesehen von Read&Write,

dass dann eine Fehlerbehandlung noch ansteht, nachdem wir aus dem Systemaufruf zurückgekehrt

sind. Der Systemaufruf selbst, wenn er abgesetzt wird im Rahmen eines Trepps durch den Software-

Interrupt-Befehl, den Unterbrechungsbefehl, würde hier bei der Behandlungsroutine starten. Dort

wird dekodiert, die Parameter werden übernommen und es wird dann letztendlich die Read&Write-Funktion

als Systemfunktion, je nach dem was gewünscht ist, dann aktiviert, als Unterprogramm dann letztendlich

aktiviert. Hier innen drin haben wir einen normalen Prozeduraufruf, hier oben haben wir auch ganz normale

Prozeduraufrufe, aber insgesamt gesehen von hier oben bis nach hier unten runter haben wir eine

domänenübergreifende Aktion, die hier stattfindet. Die obere Domäne ist die Domäne der Ebene 3. Hier

sind wir im Anwendungsmodus, also die CPU, der Prozessor, läuft im Anwendungsmodus. Er ist

unprivilegiert, das heißt erlaubt eigentlich nur die direkte Ausführung nicht privilegierter

Maschinenbefehle. Dieser Modus, dieses Programm oder die Software, die hier oben existiert, ist

räumlich isoliert, total isoliert, komplett abgeschottet durch Adressraumschutz, durch eine

Adressraumisolation, Speicherschutz. Man kommt aus diesem Speicherbereich, wo diese Programme

liegen, nicht ohne weiteres raus. Logisch ist auch diese Domäne eine transiente Domäne, zumindest

sind die Programme, die in dieser Domäne residieren, sind transient, denn so ein Anwendungsprogramm wird

geladen, der läuft ab und am Ende verschwindet es auch wieder aus dem System. Es wird eben aus dem

Speicher, denn sozusagen wieder herausgenommen im Endeffekt. Die untere Domäne, die wir haben,

nämlich die Betriebssystem Domäne, läuft im Systemmodus. Die ist privilegiert, zumindest

graduell ein Stück weit. Also die aller allermeisten Funktionen sind wirklich privilegiert,

aber es ist nicht so, dass man da zumindest bei Linux etwa oder bei den anderen meisten

Betriebssystemen da dann halt noch eine feine Unterscheidung trifft. Man sagt, dass der gesamte

Betriebssystem gut privilegiert ist und demzufolge im privilegierten Arbeitsmodus des Prozessors,

des realen Prozessors, abläuft. Er ist räumlich isoliert, zumindest partiell. Das hängt von dem

Adressraummodell ab, das das Betriebssystem implementiert. Dazu werden wir im späteren

Verlauf der Vorlesung mehr zu hören, aber generell ist es so, dass das Betriebssystem eben zumindest

isoliert ist vom Maschinenprogramm. Das heißt, ein Maschinenprogramm ist nicht in der Lage,

normalerweise jedenfalls nicht in der Lage, Betriebssystem Code direkt zu aktivieren,

geschweige denn die Speicherbereiche, die in dem Betriebssystem zugeordnet sind,

dennoch nach Form zu manipulieren. Aus Sicht des Maschinenprogramms der oberen Domäne ist

die untere Domäne resident, logisch. Aber ich sagte ja in der Einleitung eben auch,

dass Betriebssysteme urgeladen werden. Also die haben schon gewissen transienten Charakter,

aber normalerweise ist es so, man lädt einmal, man fährt den Rechner hoch, da beim Hochfahren des

Rechners wird das Betriebssystem urgeladen und dann liegt es im Speicher drin, bleibt da eben auch

resident präsent und ist dann immer präsent während der Ausführung von den Maschinenprogrammen.

Muss ja so sein, denn jedes Maschinenprogramm wird wenigstens einen Systemaufruf absetzen und sei es

nur zur Ausgabe von irgendwelchen Informationen, die wir da haben. Es findet eine Interaktion

zwischen diesen beiden Domänen statt. Wir haben einen Domänenwechsel von oben nach unten im Rahmen

des Systemaufrufs, am Ende des Systemaufrufs haben wir einen Domänenwechsel zurück von unten nach

oben. Aber sollte bei der Ausführung von einem Maschinenbefehl der Teil eines Maschinenprogramms

es irgendeine Ausnahmesituation auftreten, findet die Ausnahmebehandlung in der ersten

Stufe immer im Betriebssystem statt. Denn diese Ausnahmesituation würde, wenn sie denn von der

CPU erkannt werden, wird in einen Trepp zum Beispiel münden, wo der Trepphändler die

Behandlungsroutine für diesen Trepp, für diese, wie wir später auch sagen werden, Synchronoprogramm

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:26:52 Min

Aufnahmedatum

2020-05-09

Hochgeladen am

2020-05-10 02:06:05

Sprache

de-DE

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen